<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../node_modules/vue/dist/vue.global.js"></script>
</head>

<body>
    <div id="app">
        <p v-color v-if="flag">{{msg}}</p>
        <button @click="flag=!flag">修改flag</button>

        <!--自动聚焦 -->
        <!-- <input type="text" name="" id="" v-focus> -->
        <!-- 指令的传参 -->
        <p v-red="'red'">自定义指令传参1</p>
        <p v-red="'green'">自定义指令传参2</p>

        <!-- 表单输入正则校验-使用指令的方式 -->
        <input type="text" v-model='tel' v-phone>

    </div>
</body>

</html>
<script>
    // 自定义指令 -简写
    // 指令的参数
    const app = Vue.createApp({
        data() {
            return {
                msg: '自定义指令',
                flag: true,
                tel: ''
            }
        },
        methods: {

        },
        // 定义局部指令简写
        directives: {
            focus(el) {
                el.focus()
            },
            red(el, binding) {
                //console.log(el, binding);
                // binding 中包含参数
                el.style.color = binding.value
            },
            phone(el, binding) {
                // 当input 这个输入框绑定数据发生改变的时候, 然后就触发该指令的生命周期 updated函数
                console.log(el.value);
                let phoneReg = /^1[3-9]\d{9}$/;
                phoneReg.test(el.value) ? el.style.color = 'green' : el.style.color = 'red'
            }

        }
    })


    // 全局指令简写
    // 使用的时候 v-color 
    app.directive('color', (el, binging) => {
        el.style.background = 'red'
    })

    app.mount('#app')

</script>